1. Field of the Invention
This invention relates to systems, apparatus, and methods for storing data and more particularly relates to systems, apparatus, and methods for managing redundant data.
2. Description of the Related Art
Dependable data storage solutions have always been a focus of effective computer networks and information systems. One approach to dependable data storage includes using a controller in conjunction with a redundant array of independent disks (RAID) to create multiple copies of data. This way, should one copy of the data be destroyed, other copies of the data still exist. Though currently available RAID controllers are effective at creating redundant data, certain problems exist.
For example, when a RAID controller receives write data from a computer, the RAID controller creates or updates a parity control map to track which data stripes of a redundant disk array will be updated by committing the write data. A redundant disk array may include a plurality of data stripes each having multiple data strips and a parity strip. Next, the RAID controller updates the appropriate data strips with the write data and communicates to the computer that the write data has been committed. Then, the RAID controller updates the parity strip corresponding to the updated data strip to ensure that the parity disk is up-to-date. In some embodiments, the parity update could be performed in parallel with the data update and completion notification. Once the data and parity strips are updated, the RAID controller updates the parity control map to indicate that there are no outstanding data/parity inconsistencies.
If the RAID controller is interrupted, resulting in a loss of volatile memory data, after communicating to the computer that the write data has been committed and before updating the appropriate parity strip (assuming the parity control map is still available) the RAID controller may rely on the parity control map in the non-volatile memory to indicate which parity strip needs to be updated and derive an up-to-date parity strip via one or more data recovery operations such as an exclusive OR operation. If, however, the interruption to the RAID controller results in a complete loss of data including the parity control map, the RAID controller is unable to determine which, if any, parity strips are out dated. Such a scenario leaves the redundant disk array inconsistent. In certain scenarios, the foregoing interruption could result from replacing an old RAID controller with a new RAID controller as the new RAID controller would not include sufficient parity information to complete the appropriate parity update(s).